<!DOCTYPE HTML PUBLIC "-//ORA//DTD CD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>[Chapter 29] 29.2 java.text.CharacterIterator (JDK 1.1)</TITLE>
<META NAME="author" CONTENT="David Flanagan">
<META NAME="date" CONTENT="Thu Jul 31 16:32:53 1997">
<META NAME="form" CONTENT="html">
<META NAME="metadata" CONTENT="dublincore.0.1">
<META NAME="objecttype" CONTENT="book part">
<META NAME="otheragent" CONTENT="gmat dbtohtml">
<META NAME="publisher" CONTENT="O'Reilly &amp; Associates, Inc.">
<META NAME="source" CONTENT="SGML">
<META NAME="subject" CONTENT="Java">
<META NAME="title" CONTENT="Java in a Nutshell">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
</HEAD>
<body vlink="#551a8b" alink="#ff0000" text="#000000" bgcolor="#FFFFFF" link="#0000ee">

<DIV CLASS=htmlnav>
<H1><a href='index.htm'><IMG SRC="gifs/smbanner.gif"
     ALT="Java in a Nutshell" border=0></a></H1>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch29_01.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><B><FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1">Chapter 29<br>The java.text Package</FONT></B></TD>
<td width=172 align=right valign=top><A HREF="ch29_03.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
</table>

&nbsp;
<hr align=left width=515>
</DIV>
<DIV CLASS=sect1>
<h2 CLASS=sect1><A CLASS="TITLE" NAME="JNUT2-CH-29-SECT-2">29.2 java.text.CharacterIterator (JDK 1.1)</A></h2>

<DIV CLASS=sect2>
<h3 CLASS=sect2><A CLASS="TITLE" NAME="JNUT2-CH-29-SECT-2.1"></A></h3>
</DIV>

<P CLASS=para>
This interface defines an API for portably iterating through
the characters that comprise a string of text, regardless of
the encoding of that text.  Such an API is necessary because
the number of bytes per character is different for different
encodings, and some encodings even use variable-width
characters within the same string of text.  In addition to
allowing iteration, a class that implements the
<tt CLASS=literal>CharacterIterator</tt> interface for non-Unicode text also performs
translation of characters from their native encoding to
standard Java Unicode characters.

<P CLASS=para>
<tt CLASS=literal>CharacterIterator</tt> is similar to
<tt CLASS=literal>java.util.Enumeration</tt>, but is somewhat more complex
than that interface.  The <tt CLASS=literal>first()</tt> and <tt CLASS=literal>last()</tt>
methods return the first and last characters in the text,
and the <tt CLASS=literal>next()</tt> and <tt CLASS=literal>prev()</tt> methods allow you
to loop forward or backwards through the characters of the
text.  These methods return the <tt CLASS=literal>DONE</tt> constant when
they go beyond the first or last character in the text--a
test for this constant can be used to terminate a loop.

<P CLASS=para>
The <tt CLASS=literal>CharacterIterator</tt> interface also allows random
access to the characters in a string of text.  The
<tt CLASS=literal>getBeginIndex()</tt> and <tt CLASS=literal>getEndIndex()</tt> methods return
the character positions for the start and end of the string,
and <tt CLASS=literal>setIndex()</tt> sets the current position.
<tt CLASS=literal>getIndex()</tt> returns the index of the current
position, and <tt CLASS=literal>current()</tt> returns the character at
that position.

<DIV CLASS=screen>
<P>
<PRE>
public abstract interface <tt CLASS=literal>CharacterIterator</tt> extends Cloneable {
    // <tt CLASS=literal>Constants</tt>
            public static final char <tt CLASS=literal>DONE</tt>;
    // <tt CLASS=literal>Public Instance Methods</tt>
            public abstract Object <tt CLASS=literal>clone</tt>();  //<tt CLASS=literal> Overrides Object</tt>
            public abstract char <tt CLASS=literal>current</tt>();
            public abstract char <tt CLASS=literal>first</tt>();
            public abstract int <tt CLASS=literal>getBeginIndex</tt>();
            public abstract int <tt CLASS=literal>getEndIndex</tt>();
            public abstract int <tt CLASS=literal>getIndex</tt>();
            public abstract char <tt CLASS=literal>last</tt>();
            public abstract char <tt CLASS=literal>next</tt>();
            public abstract char <tt CLASS=literal>previous</tt>();
            public abstract char <tt CLASS=literal>setIndex</tt>(int <tt CLASS=literal>position</tt>);
}
</PRE>
</DIV>

</DIV>

<DIV CLASS=sect2>
<h3 CLASS=sect2><A CLASS="TITLE" NAME="JNUT2-CH-29-SECT-2.2">Implemented By:</A></h3>

<P CLASS=para>
StringCharacterIterator

</DIV>

<DIV CLASS=sect2>
<h3 CLASS=sect2><A CLASS="TITLE" NAME="JNUT2-CH-29-SECT-2.3">Passed To:</A></h3>

<P CLASS=para>
BreakIterator.setText()

</DIV>

<DIV CLASS=sect2>
<h3 CLASS=sect2><A CLASS="TITLE" NAME="JNUT2-CH-29-SECT-2.4">Returned By:</A></h3>

<P CLASS=para>
BreakIterator.getText()

</DIV>

</DIV>


<DIV CLASS=htmlnav>

<P>
<HR align=left width=515>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch29_01.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><a href="index.htm"><img src='gifs/txthome.gif' border=0 alt='Home'></a></td>
<td width=172 align=right valign=top><A HREF="ch29_03.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
<tr>
<td width=172 align=left valign=top>java.text.BreakIterator (JDK 1.1)</td>
<td width=171 align=center valign=top><a href="index/idx_0.htm"><img src='gifs/index.gif' alt='Book Index' border=0></a></td>
<td width=172 align=right valign=top>java.text.ChoiceFormat (JDK 1.1)</td>
</tr>
</table>
<hr align=left width=515>

<IMG SRC="gifs/smnavbar.gif" USEMAP="#map" BORDER=0> 
<MAP NAME="map"> 
<AREA SHAPE=RECT COORDS="0,0,108,15" HREF="../javanut/index.htm"
alt="Java in a Nutshell"> 
<AREA SHAPE=RECT COORDS="109,0,200,15" HREF="../langref/index.htm" 
alt="Java Language Reference"> 
<AREA SHAPE=RECT COORDS="203,0,290,15" HREF="../awt/index.htm" 
alt="Java AWT"> 
<AREA SHAPE=RECT COORDS="291,0,419,15" HREF="../fclass/index.htm" 
alt="Java Fundamental Classes"> 
<AREA SHAPE=RECT COORDS="421,0,514,15" HREF="../exp/index.htm" 
alt="Exploring Java"> 
</MAP>
</DIV>

</BODY>
</HTML>
